iRidium для BACnet IP
Набор инструментов для создания интерфейса визуализации
Драйвер предназначен для управления оборудованием BACnet. Для ознакомления используйте пример проекта:
Описание
iRidium для BACnet - это набор инструментов, позволяющий создать интерфейс для управления домом или офисом на базе одноименного оборудования. Реализует команды протокола BACnet.
Подключение
Панели управления (iOS, Android, Windows, Mac) могут управлять оборудованием BACnet только через BACnet контроллер.

Импорт из файла *xml и *csv
Конфигурацию оборудования можно сохранить в формате xml, или csv и импортировать в iRidium. У файлов формата csv поддерживается ede и hl структура.
-
Откройте и авторизуйтесь в StruxureWare Building Operation Workstation.
-
В StruxureWare Building Operation, кликните правой кнопкой мыши по Enterprise server, и выберите пункт Import из раскрывающегося списка.

- Создайте новый проект в iRidium Studio, на панели Devices выберите Import > BACnet Project(*.xml, *.csv) (beta). В появившемся окне выберите необходимый файл для импорта.

- После импорта появится диалог для выбора сети и сабдевайсов. На основе файла импорта сформируется сеть с подустройствами, командами и фидбеками.
При повторном импорте:
- Cети будут объединены по настройкам подключения Host и Port;
- При совпадении настроек соединения, подустройства сравниваются по именам, и будут добавлены только новые.
Добавление драйвера вручную
Если у вас нет возможности импортировать устройство, добавьте драйвер BACnet в проект из базы данных iRidium:

Настройка параметров подключения
Когда с помощью импортирования или вручную драйвер добавлен в проект, нужно указать настройки подключения.

- Log Level - уровень логирования драйвера.
- Host - IP адрес контроллера.
- Port - порт подключения к устройству для получения данных (по умолчанию 47808, драйвер посылает запросы агенту).
- Send Timeout - время таймаута отправки в миллисекундах.
- Update Timeout - время подготовки данных в буфер для отправки в миллисекундах. Update Timeout должен быть в несколько раз больше чем Send Timeout.
- Re-subscribe Timeout (min) - время обновления подписки.
- LocalPort - порт подключения к устройству для получения данных (по умолчанию 47808, агент посылает ответ драйверу).
При наличии двух драйверов в проекте, LocalPort должен быть разным.
Настройка параметров BACnet-устройств
Устройства в сети BACnet имеют несколько важных настроек.

- Device Instance - Идентификатор устройства Bacnet. Его следует посмотреть в web интерфейсе контроллера
- Priority - Этот параметр может иметь значение в диапазоне 1-16 и обозначает приоритет операции записи. Приоритезация команд BACnet
- Network ID - Номер сети уникально идентифицирует сеть в системе BACnet. Приложение i-Vu® автоматически генерирует все номера сети. Номера сетей должны быть уникальными в системе BACnet независимо от протокола. BACnet сетевые номера MS / TP и BACnet / IP не могут быть дублированы. Номер сети может составлять от 1 до 65534 (с 65 535 забронированными для трансляций).
- Maс address - являются идентификатором нижнего уровня в BACnet. В i-Vu® Open, MAC варьируется от 1 до 99 и должны быть уникальными для каждого устройства в пределах сети.
- Update type - тип обновления фидбэков в протоколе (подписка или опрос):
- Auto (subscribe cov or read property) - автоматическое определение типа.
- Read property - принудительный опрос переменных.
Изменение параметров подключения
Возможность смены параметров подключения нужна, если вы отключаетесь от Wi-Fi сети объекта автоматизации и начинаете использовать 3G или другую Wi-Fi сеть. Чтобы управление продолжило работать, нужно переключиться с локального на публичный IP адрес интернет-маршрутизатора.
Переключение не происходит автоматически, вам нужно будет нажать на клавишу выбора режима соединения. Для возможности удаленного доступа необходимо сделать порты управления системой автоматизации публичными. Для этого настраивают службу Port Forwarding на интернет-маршрутизаторе. Защищенное соединение может обеспечить VPN.
-
Скачайте шаблон (*.js) (правая кнопка: "Сохранить объект как..."), добавьте шаблон в редактор скриптовIcon Scripts.pngклавишей (+) Add Script from file
-
Настройте параметры скрипта, как показано в примере:
function Internal_1() {
IR.GetDevice('BACnet').SetParameters({Host: "192.168.0.95", Port: 5001, "SendTimeOut": 2000, "UpdateTimeOut": 1000});
}
function External_1() {
IR.GetDevice('BACnet').SetParameters({Host: "215.110.10.10", Port: 5001, "SendTimeOut": 2000, "UpdateTimeOut": 1000});
}
Скопируйте имя драйвера из Projсet Device Panel, список параметров нужно скопировать из примера в точности.
- Выберите кнопку, которая будет отвечать за переключение Internal и External параметров. Откройте
Macros Editorдля события Press (Object Properties > Programming), выберите командуScript Callи добавьте ее двойным кликом. Выберите имя функции, которую вызовет кнопка:

Теперь каждое нажатие на кнопку будет применять соответствующий набор настроек подключения.
Commands & Feedbacks

Для управления оборудованием настройте команды (Commands) и каналы обратной связи (Feedbacks). Чтобы отправить команду, перетяните ее на графический элемент и укажите значение (Value), которое необходимо отправить. Чтобы отобразить значение с канала обратной связи, перетащите Feedback на графический элемент, и укажите, каким образом вывести значение (Value).
Подробнее о работе с графическими элементами написано в статье "Типы графических элементов".
Настройка
Для настройки команды или фидбека необходимо установить значение следующих полей:
- Property Type - тип значения канала/тега:
- Present Value - режим чтения значения с устройства,
- Out of Service - режим записи значения с панели,
- Object Type - тип переменной,
- ObjectID - идентификатор переменной (входа, выхода). Его можно найти в Web интерфейсе контроллера (BaCnet Interface - Application - Points - Переменная - Вкладка Advanced),
- COV increment - минимальное изменение величины, при котором происходит обновление данных.
В данный момент поддерживаются следующие типы переменных:
Object Types
| тип | описание |
|---|---|
| analog-input | Аналоговый вход |
| analog-output | Аналоговый выход |
| analog-value | Аналоговое значение |
| binary-input | Бинарный вход |
| binary-output | Бинарный выход |
| binary-value | Бинарное значение |
| multi-state-input | Вход со многими состояниями |
| multi-state-output | Выход со многими состояниями |
| multi-state-value | Значение со многими состояниями |
Скриптовые методы
.SetSubDeviceParam()
Функция реализована для настройки параметров в i3Pro, у подустройств драйвера BACnet.
Синтаксис
IR.GetDevice("DeviceName").SetSubDeviceParam("SubDeviceName", {
"device_instance": value,
"priority": value,
"network_id": value,
"mac_address": “value”,
"update_type": value
});
| на входе | значение | описание |
|---|---|---|
| DeviceName | "BACNet Network" | type: String Имя драйвера BACNet. |
| SubDeviceName | "BACNet Device" | type: String Имя подустройства в драйвере BACNet. |
| на выходе | ||
| device_instance | 0 - 4194302 | type: Number Параметр для изменения идентификатора. |
| priority | 1 - 16 | type: Number Параметр для изменения приоритета операции записи. |
| network_id | 1 - 65534 | type: Number Параметр задаёт значение ID (является условно изменяемым параметром, если у устройства есть настроенное Network_ID оно пришлет его нам и в i3Pro запишет пришедшее значение, если нет, то при отправке сообщений пакеты будут отсылаться с заданным значением). |
| mac_address | "45:67:89:AB:DE:23" | type: String Параметр для изменения настройки MAC-адреса. |
| update_type | IR.BACNET_AUTO // IR.BACNET_READ_PROPERTY | type: Object Параметр для изменения способа получения фидбэков. Существует 2 способа: IR.BACNET_AUTO (если устройство поддерживает функцию работы по подписке - фидбеки будут приходить от устройства при изменении, если устройство не поддерживает функцию работы по подписке - i3Pro будет опрашивать устройство). IR.BACNET_READ_PROPERTY (i3Pro будет опрашивать устройство). |
Пример
IR.GetDevice("BACNet Network").SetSubDeviceParam("BACNet Device"
"device_instance" : 5,
"priority" : 8,
"network_id" : 1,
"mac_address" : "45:67:89:AB:DE:23",
"update_type" : IR.BACNET_READ_PROPERTY
IR.GetDevice("BACNet Network").Connect();`
После отработки функции .SetSubDeviceParam происходит Disconnect, для повторного подключения к драйверу добавьте функцию IR.GetDevice("DeviceName").Connect().GetSubDeviceParam()
.GetSubDeviceParam()
Функция для получения параметров подустройства в реальном времени.
Синтаксис
IR.GetDevice("DeviceName").GetSubDeviceParam("SubDeviceName")
| на входе | значение | описание |
|---|---|---|
| DeviceName | "BACNet Network" | type: String Имя драйвера BACNet. |
| SubDeviceName | "BACNet Device" | type: String Имя подустройства в драйвере BACNet. |
| на выходе | ||
| device_instance | 0 - 4194302 | type: Number Идентификатор устройства. |
| priority | 1 - 16 | type: Number Приоритет операции записи. |
| network_id | 1 - 65534 | type: Number Идентификатор сети. Network_ID является условно изменяемым параметром, если у устройства есть настроенный Network_ID - оно пришлет его и в i3 Pro сохранится пришедшее значение, если нет - при отправке сообщений пакеты будут отсылаться с заданным значением (по умолчанию или функцией SetSubDeviceParam(). |
| mac_address | "45:67:89:AB:DE:23" | type: String MAC-адрес. |
| update_type | IR.BACNET_AUTO // IR.BACNET_READ_PROPERTY | type: Object Способ получения фидбэков. |
Пример
IR.GetDevice("BACNet Network").GetSubDeviceParam("BACNet Device")